<%@page import="study.itwill.common.DateTime"%>
<%@page import="study.itwill.jsp.PageHandler"%>
<%@page import="study.itwill.jsp.WebHandler"%>
<%@page import="study.itwill.common.PatternChecker"%>
<%@page import="study.itwill.team5.house.House"%>
<%@page import="study.itwill.team5.house.HouseItem"%>
<%@page import="java.util.ArrayList"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page trimDirectiveWhitespaces="true" %>
<%@ include file="../dbcon.jsp"%>
<%
	String city = request.getParameter("city");

	/** 파라미터의 유효성 검사 */
	if(!PatternChecker.isValue(city)) {
		out.print("<script type='text/javascript'>alert('도시 일련번호 파라미터가 없습니다.');history.back();</script>");
		return;
	}
	
	if(!PatternChecker.isNum(city)) {
		out.print("<script type='text/javascript'>alert('도시 일련번호 파라미터가 형식에 맞지 않습니다.');history.back();</script>");
		return;
	}
	
	WebHandler web = new WebHandler(request, response, out);
	
	// 페이지 번호 파라미터
	int nowPage = web.getInt("page");
	
	// 파라미터가 없다면 -1을 리턴하므로...
	if (nowPage < 1) {
		nowPage = 1;
	}
	
	// 전체 데이터 수 조회
	int total_count = DBHandler.getCount("house", "seq", "house_city_seq=" + city);
	
	// 페이징 객체 호출
	PageHandler p_handler = new PageHandler(nowPage, total_count);

	// 목록을 가져오는 메서드에게 데이터의 시작위치와 끝 위치 전달
	int start = p_handler.getStartRec();
	int end = p_handler.getPageArticleCount();
	

	int n_seq = Integer.parseInt(city);
	
	ArrayList<HouseItem> list = (new House()).listHouse(n_seq, start, end);

	if (list == null) {
		out.print("<script type='text/javascript> alert('데이터 조회에 실패했습니다. 잠시후 다시 시도해 주세요.'); history.back();</script>");
		return;
	}
%>
<!DOCTYPE html>
<html lang="ko">
  <head>
  	<%@ include file="../head.jsp" %>
  	<style type="text/css">
  		th, td {
  			white-space: nowrap !important;
  		}
  	</style>
  </head>
  <body>
 	 <%@ include file="../menu.jsp" %>

 	 <%DBHandler.disconnect();%>
    <!-- 웹 페이지 영역 -->
    <div class="container">
    	<div class="page-header clearfix">
    		<!-- 도시 일련번호 자동 생성 -->
    		<input type="hidden" name="city" value="<%=city%>" />
	    	<h1 class="pull-left">
	    		민박목록
	    	</h1>
	    	<div class="pull-right" style="padding-top: 30px">
	    		<a href="addHouse.jsp?city=<%=city%>" class="btn btn-info">추가하기</a>
    		</div>
		</div>
			<div class="table-responsive">
				<table class="table table-striped table-hover">
					<thead>
						<tr class="warning">
							<th class="text-center">번호</th>
							<th class="text-center">도시</th>
							<th class="text-center">이름</th>
							<th class="text-center">기타주소</th>
							<th class="text-center">이메일</th>
							<th class="text-center">홈페이지</th>
							<th class="text-center">평점</th>
							<th class="text-center">등록일자</th>
							<th class="text-center">수정일자</th>
							<th class="text-center"></th>
						</tr>
					</thead>
					<tbody>
						<%
							if (list.size() < 1) {
						%>
						<tr>
							<td colspan="10">
								<p class="text-center text-warning" style="height: 100px">
								저장된 데이터가 없습니다.</p>
							</td>
						</tr>
						<%
							} else {
							for (int i=0; i<list.size(); i++) {
								HouseItem item = list.get(i);
						%>
						<tr class="text-center">
							<td><%=item.getSeq()%></td>
							<td><%=item.getCity_name()%></td>
							<td><%=item.getName()%></td>
							<td><%=item.getAddress4()%></td>
							<td><a href="mailto:<%=item.getEmail()%>"><i class="glyphicon glyphicon-envelope"></i></a></td>
							<td><a href="<%=item.getHomepage()%>" target="_blick"><i class="glyphicon glyphicon-home"></i></a></td>
							<td><%=item.getGrade()%></td>
							<td><%=DateTime.getInstance().getDateTimeString(item.getReg_date())%></td>
							<td><%=DateTime.getInstance().getDateTimeString(item.getEdit_date())%></td>
							<td><a href="viewHouse.jsp?seq=<%=item.getSeq()%>&city=<%=city%>"
									class="btn btn-primary">정보보기</a>
						</tr>
						<%
							} // end for
						} // end if
						%>
					</tbody>
				</table>
			</div>
			<div class="text-center">
				<ul class="pagination pagination-centerd">
					<%
					// 이전 페이지 그룹 링크
					// --> 현재 페이지가 1페이지의 그룹 수 보다 작다면 첫 그룹이므로
					//		링크 비활성화
					if (p_handler.getNowPage() <= p_handler.getPageGroupCount()) {
					%>
						<li class="disabled"><a href="#">&laquo;</a></li>
					<%
					} else {
						// 그렇지 않다면, 이전 페이지 그룹의 마지막 페이지로 링크 생성
						int prevPage = p_handler.getStartPage()-1;
					%>
						<li><a href="listHouse.jsp?city=<%=city%>&page=<%=prevPage%>">&laquo;</a></li>
					<%
					}
					%>
						
					<%
						// 현재 페이지 그룹의 첫 페이지부터 마지막 페이지까지 반복 처리
						for (int i=p_handler.getStartPage();
								i<=p_handler.getEndPage(); i++) {
							String classAttr = "";
							if(i == p_handler.getNowPage()) {
								classAttr = "class='active'";
							}
					%>
						<li <%=classAttr%>><a href="listHouse.jsp?city=<%=city%>&page=<%=i%>"><%=i%></a></li>
					<%
						}
					%>	
					
					<%
						// 현재 페이지가 첫 마지막 페이지 그룹의 첫 페이지보다 크거나 같다면,
						// 다음 페이지로 이동할 수 없다.
						if (p_handler.getNowPage() >= p_handler.getLastGroupFirstPage()) {
					%>	
						<li class="disabled"><a href="#">&raquo;</a></li>
					<%
						} else {
							// 그렇지 않다면 현재 그룹의 마지막페이지 +1 --> 다음 그룹의 첫 페이지로
							// 이동할 링크 생성
							int nextPage = p_handler.getEndPage()+1;
					%>
						<li><a href="listHouse.jsp?city=<%=city%>&page=<%=nextPage%>">&raquo;</a></li>
					<%
						}
					%>
				</ul>
			</div>
    </div>
    <!-- Javascript -->
 	<script src="/italia2/assets/js/jquery.js"></script>
    <script src="/italia2/assets/js/bootstrap.min.js"></script>
  </body>
</html>